package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import model.Cliente;

public class OperacacoesDao {
	private PreparedStatement stmt;
	private ResultSet resultSet;
        private ConnectionFactory conexao;
        
        
        

	public OperacacoesDao() {
		this.stmt = null;
		this.resultSet = null;
                this.conexao = ConnectionFactory.getInstance();
               

	}

	/**
	 * Metodo para executar consulta de cliente por nome
	 * 
	 * @param sql
	 * @return ResultSet
	 * @throws SQLException
	 */
    public ArrayList consultaCliente(String nome){
            try {
                String sqlConsultaCliente ="SELECT Pk_intIdCliente,txtNomecliente,txtCpfCliente,txtTelefoneCliente,dataNascimentoCliente\n" +
                                           "From tabCliente\n" +
                                           "WHERE txtNomecliente like '%(?)%'";
                 this.stmt = ConnectionFactory.conexao.prepareStatement(sqlConsultaCliente);
                 stmt.setString(1,nome);
                 ArrayList resultClientes = (ArrayList) stmt.executeQuery();
                 return resultClientes;
                 
                
                
            } catch (SQLException ex) {
                Logger.getLogger(OperacacoesDao.class.getName()).log(Level.SEVERE, null, ex);
            }
        
        return null;
    
    }
    /**
	 * Metodo para executar consulta de cliente por numero de matricula
	 * 
	 * @param sql
	 * @return ResultSet
	 * @throws SQLException
	 */
    
       public ResultSet consultaCliente(int matricula){
            try {
                String sqlConsultaCliente ="SELECT Pk_intIdCliente,txtNomecliente,txtCpfCliente,txtTelefoneCliente,dataNascimentoCliente\n" +
                                           "From tabCliente\n" +
                                           "WHERE txtNomecliente like '%(?)%'";
                this.stmt = ConnectionFactory.conexao.prepareStatement(sqlConsultaCliente);
                 stmt.setInt(1,matricula);
                 resultSet = stmt.executeQuery();
                 return resultSet;
                 
                
                
            } catch (SQLException ex) {
                Logger.getLogger(OperacacoesDao.class.getName()).log(Level.SEVERE, null, ex);
            }
        
        return null;
    
    }
       /**
        * Metodo para insercao na tabCliente
        * @param Object cliente
        * @return boolean 
        */
       

       
  
    
    
	
	public ResultSet queryCategoria(String nomeCategoria){
		try {
			this.stmt = ConnectionFactory.conexao.prepareStatement("select * from tabCategoria where txtNomeCategoria= (?)");
			 stmt.setString(1,nomeCategoria);
			 stmt.execute();
			 stmt.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return resultSet;
		
		
	}
	

	/**
	 * Metodo para gerar Lista de categorias
	 * 
	 * @param ResultSet
	 * 
	 **/

	public void listarCategoria(ResultSet resultSetCategoria) {
		try {
			while (resultSetCategoria.next()) {
				System.out.print("\n" + resultSetCategoria.getInt(1));
				System.out.print(" - "
						+ resultSetCategoria.getString("txtNomeCategoria"));

			}
		} catch (SQLException e) {

			e.printStackTrace();
		}

	}


	
	
}
